package forcebuckle;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 最长回文子串
 * 给你一个字符串 s，找到 s 中最长的回文子串。
 * 示例 1：
 * <p>
 * 输入：s = "babad"
 * 输出："bab"
 * 解释："aba" 同样是符合题意的答案。
 */
public class LongestSubstring {
    public static void main(String[] args) {
        LongestSubstring longestSubstring = new LongestSubstring();
        System.out.println(longestSubstring.longestPalindrome("babad"));
    }

    public String longestPalindrome(String s) {
        int length = s.length();
        int max = 0;
        String a = " ";
        for (int i = 0; i < length; i++) {
            for (int j = i + 1; j <= length; j++) {
                String test = s.substring(i, j);
                if (isPalindromic(test) && test.length() > max) {
                    a = s.substring(i, j);
                    max = Math.max(max, test.length());
                }
            }
        }
        return a;
    }

    public boolean isPalindromic(String s) {//判断是否回文
        int length = s.length();
        for (int i = 0; i < length / 2; i++) {
            if (s.charAt(i) != s.charAt(length - i - 1)) {
                return false;
            }
        }
        return true;
    }
}
